package com.campus.common;

import io.swagger.v3.oas.models.security.SecurityScheme;
import lombok.*;

// 统一返回结果类
// TODO: 实现统一的API响应格式
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Result{
    public static final int CODE_200 = 200;
    public static final int CODE_400 = 400;
    public static final int CODE_401 = 401;
    public static final int CODE_403  = 403;
    public static final int CODE_404 = 404;
    public static final int CODE_500 = 500;
    //成员属性
    private int code;//状态码


    private String message;//响应信息

    private Object data;//响应数据

    //成功响应的方法 -- 返回的Result中只封装了成功状态码
    public static Result ok(){
        return new Result( CODE_200,null, null);
    }
    //成功响应的方法 -- 返回的Result中封装了成功状态码和响应信息
    public static Result ok(String message){
        return new Result(CODE_200,message, null);
    }
    //成功响应的方法 -- 返回的Result中封装了成功状态码和响应数据
    public static Result ok(Object data){
        return new Result(CODE_200,null, data);
    }
    //成功响应的方法 -- 返回的Result中封装了成功状态码和响应信息和响应数据
    public static Result ok(String message, Object data){
        return new Result(CODE_200,message, data);
    }
    //失败响应的方法 -- 返回的Result中封装了失败状态码和响应信息
    public static Result err(int errCode, String message){
        return new Result(errCode,message, null);
    }
    //失败响应的方法 -- 返回的Result中封装了失败状态码和响应信息和响应数据
    public static Result err(int errCode,String message,Object data){
        return new Result(errCode,message, data);
    }
}
